package erebus; import java.lang.reflect.Field; import java.util.List; import java.util.Locale; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.init.Blocks; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.Item; import net.minecraft.item.ItemSeedFood; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.registry.GameRegistry; import erebus.items.ItemArmorBamboo; import erebus.items.ItemArmorExoskeleton; import erebus.items.ItemArmorJade; import erebus.items.ItemArmorReinExoskeleton; import erebus.items.ItemArmorRhino; import erebus.items.ItemArmorWaterStriders; import erebus.items.ItemAxeJade; import erebus.items.ItemBootsJump; import erebus.items.ItemCompoundGoggles; import erebus.items.ItemErebusFood; import erebus.items.ItemErebusShield; import erebus.items.ItemFoodHeartBerries; import erebus.items.ItemFoodStagHeart; import erebus.items.ItemHelmMushroom; import erebus.items.ItemHelmRhino; import erebus.items.ItemJadeHoe; import erebus.items.ItemJadePaxel; import erebus.items.ItemJadeShovel; import erebus.items.ItemJadeSword; import erebus.items.ItemLeggingsSprint; import erebus.items.ItemMaterials; import erebus.items.ItemPickaxeJade; import erebus.items.ItemSpiderTShirt; import erebus.lib.Reference; public class ModItems { public static final Item MATERIALS = new ItemMaterials(); public static final Item EREBUS_FOOD = new ItemErebusFood(); public static final Item HEART_BERRIES = new ItemFoodHeartBerries(0, 0F, false); public static final Item LIFE_BLOOD = new ItemFoodHeartBerries(0, 0F, false); public static final Item TURNIP = new ItemSeedFood(4, 0.6F, ModBlocks.CROP_TURNIP, Blocks.FARMLAND).setCreativeTab(ModTabs.ITEMS); public static final Item CABBAGE_SEEDS = new ItemSeedFood(4, 0.1F, ModBlocks.CROP_CABBAGE, Blocks.FARMLAND).setCreativeTab(ModTabs.ITEMS); public static final Item STAG_HEART_RAW = new ItemFoodStagHeart(0, 0F, false, "raw"); public static final Item STAG_HEART_COOKED = new ItemFoodStagHeart(20, 0.5F, false, "cooked"); // JADE STUFF public static final Item JADE_HELMET = new ItemArmorJade(EntityEquipmentSlot.HEAD); public static final Item JADE_CHESTPLATE = new ItemArmorJade(EntityEquipmentSlot.CHEST); public static final Item JADE_LEGGINGS = new ItemArmorJade(EntityEquipmentSlot.LEGS); public static final Item JADE_BOOTS = new ItemArmorJade(EntityEquipmentSlot.FEET); public static final Item JADE_SWORD = new ItemJadeSword(); public static final Item JADE_PICKAXE = new ItemPickaxeJade(); public static final Item JADE_AXE = new ItemAxeJade(); public static final Item JADE_SHOVEL = new ItemJadeShovel(); public static final Item JADE_PAXEL = new ItemJadePaxel(); public static final Item JADE_HOE = new ItemJadeHoe(); // EXOSKELETON STUFF public static final Item EXOSKELETON_HELMET = new ItemArmorExoskeleton(EntityEquipmentSlot.HEAD); public static final Item EXOSKELETON_CHESTPLATE = new ItemArmorExoskeleton(EntityEquipmentSlot.CHEST); public static final Item EXOSKELETON_LEGGINGS = new ItemArmorExoskeleton(EntityEquipmentSlot.LEGS); public static final Item EXOSKELETON_BOOTS = new ItemArmorExoskeleton(EntityEquipmentSlot.FEET); public static final Item REIN_EXOSKELETON_HELMET = new ItemArmorReinExoskeleton(EntityEquipmentSlot.HEAD); public static final Item REIN_EXOSKELETON_CHESTPLATE = new ItemArmorReinExoskeleton(EntityEquipmentSlot.CHEST); public static final Item REIN_EXOSKELETON_LEGGINGS = new ItemArmorReinExoskeleton(EntityEquipmentSlot.LEGS); public static final Item REIN_EXOSKELETON_BOOTS = new ItemArmorReinExoskeleton(EntityEquipmentSlot.FEET); public static final Item RHINO_EXOSKELETON_HELMET = new ItemHelmRhino(EntityEquipmentSlot.HEAD); public static final Item RHINO_EXOSKELETON_CHESTPLATE = new ItemArmorRhino(EntityEquipmentSlot.CHEST); public static final Item RHINO_EXOSKELETON_LEGGINGS = new ItemArmorRhino(EntityEquipmentSlot.LEGS); public static final Item RHINO_EXOSKELETON_BOOTS = new ItemArmorRhino(EntityEquipmentSlot.FEET); // BAMBOO STUFF public static final Item BAMBOO_HELMET = new ItemArmorBamboo(EntityEquipmentSlot.HEAD); public static final Item BAMBOO_CHESTPLATE = new ItemArmorBamboo(EntityEquipmentSlot.CHEST); public static final Item BAMBOO_LEGGINGS = new ItemArmorBamboo(EntityEquipmentSlot.LEGS); public static final Item BAMBOO_BOOTS = new ItemArmorBamboo(EntityEquipmentSlot.FEET); // MISC ARMOR public static final Item REIN_COMPOUND_GOGGLES = new ItemCompoundGoggles(ModMaterials.ARMOR_REIN_EXOSKELETON, EntityEquipmentSlot.HEAD); public static final Item COMPOUND_GOGGLES = new ItemCompoundGoggles(ModMaterials.ARMOR_EXOSKELETON, EntityEquipmentSlot.HEAD); public static final Item SPRINT_LEGGINGS = new ItemLeggingsSprint(); public static final Item JUMP_BOOTS = new ItemBootsJump(); /* TODO FIX ERRORS public static final Item GLIDER_CHESTPLATE = new ItemArmorGlider(); public static final Item GLIDER_CHESTPLATE_POWERED = new ItemArmorGlider(); */ public static final Item MUSHROOM_HELMET = new ItemHelmMushroom(EntityEquipmentSlot.HEAD); public static final Item SPIDER_T_SHIRT = new ItemSpiderTShirt(EntityEquipmentSlot.CHEST); public static final Item WATER_STRIDERS = new ItemArmorWaterStriders(EntityEquipmentSlot.FEET); public static final Item BAMBOO_SHIELD = new ItemErebusShield(ModMaterials.ARMOR_BAMBOO); public static final Item EXOSKELETON_SHIELD = new ItemErebusShield(ModMaterials.ARMOR_EXOSKELETON); public static final Item JADE_SHIELD = new ItemErebusShield(ModMaterials.ARMOR_JADE); public static final Item REIN_EXOSKELETON_SHIELD = new ItemErebusShield(ModMaterials.ARMOR_EXOSKELETON); public static final Item RHINO_EXOSKELETON_SHIELD = new ItemErebusShield(ModMaterials.ARMOR_REIN_EXOSKELETON); public static void init() { try { for (Field field : ModItems.class.getDeclaredFields()) { Object obj = field.get(null); if (obj instanceof Item) { Item item = (Item) obj; String name = field.getName().toLowerCase(Locale.ENGLISH); GameRegistry.register(item.setRegistryName(Reference.MOD_ID, name).setUnlocalizedName(Reference.MOD_ID + "." + name)); } } } catch (IllegalAccessException e) { throw new RuntimeException(e); } } public static void registerRenderers() { try { for (Field field : ModItems.class.getDeclaredFields()) { Object obj = field.get(null); if (obj instanceof Item) { Item item = (Item) obj; if (item instanceof ISubItemsItem) { List<String> models = ((ISubItemsItem) item).getModels(); for (int i = 0; i < models.size(); i++) ModelLoader.setCustomModelResourceLocation(item, i, new ModelResourceLocation(Reference.MOD_ID + ":" + models.get(i), "inventory")); } else { String name = field.getName().toLowerCase(Locale.ENGLISH); ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + name, "inventory")); } } } } catch (IllegalAccessException e) { throw new RuntimeException(e); } } public static interface ISubItemsItem { List<String> getModels(); } }